#include<stdio.h>
#include<conio.h>
#include<graphics.h>

int main()
{
	float pi=3.14159;//圆周率pi
	initgraph(800,600);//打开窗口
	setbkcolor(RGB(128,128,128));//设置背景颜色为灰色
	cleardevice();//以背景颜色清空画布

	int centerX = 100;//圆心的横坐标
	int centerY = 100;//圆心的纵坐标
	int radius = 100;//圆的半径
	setlinecolor(RGB(128,128,128));//设置圆边线的颜色
	circle(centerX,centerY,radius);//绘制一个圆


	int left = centerX - radius;//扇形的左端点
	int right = centerX + radius;//扇形的右端点
	int top = centerY - radius;//扇形的上顶点
	int bottom = centerY + radius;//扇形的下顶点

	int i;
	float offset;//图形绘成圆
	float totaloffset = 0;//图形由外到里变动

	float h = rand()%180;
	COLORREF color1 = HSVtoRGB(h,0.9,0.8);
	COLORREF color2 = HSVtoRGB(h+180,0.9,0.8);

	while(1)
	{
		for(centerY = 100;centerY<600;centerY=centerY+200)//纵向绘制多个旋转蛇
		{
			for(centerX = 100;centerX<800;centerX=centerX+200)//横向绘制多个旋转蛇
			{
				totaloffset=0;//同一半径各组扇形之间的角度偏移
				float h = rand()%180;//随机色调
				COLORREF color1 = HSVtoRGB(h,0.9,0.8);//色调1生成的颜色1
				COLORREF color2 = HSVtoRGB(h+180,0.9,0.8);//色调2生成的颜色2
				for(radius=100;radius>0;radius=radius-20)//旋转蛇随半径变化
				{
					int left = centerX - radius;//扇形的左端点
					int right = centerX + radius;//扇形的右端点
					int top = centerY - radius;//扇形的上顶点
					int bottom = centerY + radius;//扇形的下顶点


					for(i=0;i<20;i++)
					{
						offset = i*pi/10+totaloffset;//旋转蛇随圆变化
						setfillcolor(color1);//色调1生成的颜色1
						solidpie(left,top,right,bottom,offset,2*pi/60+offset);//绘制一个填充扇形
						setfillcolor(RGB(255,255,255));//设置填充颜色为白色
						solidpie(left,top,right,bottom,2*pi/60+offset,3*pi/60+offset);//绘制一个填充扇形
						setfillcolor(color2);//色调2生成的颜色2
						solidpie(left,top,right,bottom,3*pi/60+offset,5*pi/60+offset);//绘制一个填充扇形
						setfillcolor(RGB(0,0,0));//设置填充颜色为黑色
						solidpie(left,top,right,bottom,5*pi/60+offset,6*pi/60+offset);//绘制一个填充扇形
					}
					totaloffset=totaloffset+pi/20;
				}
			}
		}
	_getch();//等待按键输入
	}
	
	return 0;
}